/**********************************************************************************************************************
 *
 * Project:    mGameEngine
 * File:       set.h
 * Author:     karooolek
 * Created on: 2009-05-13
 *
 **********************************************************************************************************************/

#ifndef SET_H_
#define SET_H_

#include <set>

namespace mGameEngine
{

/**
 * Set container.
 * Elements in set are ordered using their values.
 * Finding elements in set is very efficient.
 * Elements can be accessed using iterators.
 */
template<typename TVal>
class Set : public std::set<TVal>
{
public:
    /**
     * Set iterator.
     */
    typedef typename std::set<TVal>::iterator Iterator;

    /**
     * Set const interator.
     */
    typedef typename std::set<TVal>::const_iterator ConstIterator;

    /**
     * Create empty set.
     */
    Set() : std::set<TVal>()
    {
    }

    /**
     * Copy constructor.
     * @param s Set to copy
     */
    Set(const Set &s) : std::set<TVal>(s)
    {
    }
};

}

#endif // SET_H_
